{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "b67ec1c2",
   "metadata": {},
   "source": [
    "# 多模型对比分析（MNIST & CIFAR-10）\n",
    "\n",
    "本Notebook汇总线性回归、逻辑回归、SVM、决策树、KNN、MLP六种模型在MNIST和CIFAR-10上的表现，并进行可视化对比和分析。"
   ]
  },
  {
   "cell_type": "code",
   "id": "bc33d4ef",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-22T14:58:57.859208Z",
     "start_time": "2025-05-22T14:58:57.841271Z"
    }
   },
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ],
   "outputs": [],
   "execution_count": 8
  },
  {
   "cell_type": "markdown",
   "id": "cdeb3d19",
   "metadata": {},
   "source": "## 汇总各模型实验结果\n"
  },
  {
   "metadata": {},
   "cell_type": "markdown",
   "source": "",
   "id": "d6ce18992ea48bda"
  },
  {
   "cell_type": "code",
   "id": "bc82404a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-22T14:58:57.869490Z",
     "start_time": "2025-05-22T14:58:57.865214Z"
    }
   },
   "source": [
    "results = {\n",
    "    '线性回归': {'MNIST': 0.219, 'CIFAR-10': 0.132},\n",
    "    '逻辑回归': {'MNIST': 0.874, 'CIFAR-10': 0.274},\n",
    "    'SVM': {'MNIST': 0.886, 'CIFAR-10': 0.374},\n",
    "    '决策树': {'MNIST': 0.748, 'CIFAR-10': 0.233},\n",
    "    'KNN': {'MNIST': 0.816, 'CIFAR-10': 0.236},\n",
    "    'MLP': {'MNIST': 0.896, 'CIFAR-10': 0.354}\n",
    "}\n"
   ],
   "outputs": [],
   "execution_count": 9
  },
  {
   "cell_type": "markdown",
   "id": "4638b8be",
   "metadata": {},
   "source": [
    "## 各模型准确率对比可视化"
   ]
  },
  {
   "cell_type": "code",
   "id": "80d04a28",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-05-22T14:58:57.990422Z",
     "start_time": "2025-05-22T14:58:57.883511Z"
    }
   },
   "source": [
    "model_names = list(results.keys())\n",
    "acc_mnist = [results[name]['MNIST'] for name in model_names]\n",
    "acc_cifar = [results[name]['CIFAR-10'] for name in model_names]\n",
    "x = np.arange(len(model_names))\n",
    "width = 0.35\n",
    "plt.figure(figsize=(10,6))\n",
    "plt.bar(x-width/2, acc_mnist, width, label='MNIST')\n",
    "plt.bar(x+width/2, acc_cifar, width, label='CIFAR-10')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.title('六种模型在MNIST和CIFAR-10上的准确率对比')\n",
    "plt.xticks(x, model_names, rotation=15)\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ],
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 24615 (\\N{CJK UNIFIED IDEOGRAPH-6027}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 22238 (\\N{CJK UNIFIED IDEOGRAPH-56DE}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 24402 (\\N{CJK UNIFIED IDEOGRAPH-5F52}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 36923 (\\N{CJK UNIFIED IDEOGRAPH-903B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 36753 (\\N{CJK UNIFIED IDEOGRAPH-8F91}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 20915 (\\N{CJK UNIFIED IDEOGRAPH-51B3}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 31574 (\\N{CJK UNIFIED IDEOGRAPH-7B56}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 26641 (\\N{CJK UNIFIED IDEOGRAPH-6811}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 20845 (\\N{CJK UNIFIED IDEOGRAPH-516D}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 31181 (\\N{CJK UNIFIED IDEOGRAPH-79CD}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 27169 (\\N{CJK UNIFIED IDEOGRAPH-6A21}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 22411 (\\N{CJK UNIFIED IDEOGRAPH-578B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 22312 (\\N{CJK UNIFIED IDEOGRAPH-5728}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 21644 (\\N{CJK UNIFIED IDEOGRAPH-548C}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 30340 (\\N{CJK UNIFIED IDEOGRAPH-7684}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 20934 (\\N{CJK UNIFIED IDEOGRAPH-51C6}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 30830 (\\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 23545 (\\N{CJK UNIFIED IDEOGRAPH-5BF9}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "C:\\Users\\13306\\AppData\\Local\\Temp\\ipykernel_30288\\3073683763.py:13: UserWarning: Glyph 27604 (\\N{CJK UNIFIED IDEOGRAPH-6BD4}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20845 (\\N{CJK UNIFIED IDEOGRAPH-516D}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 31181 (\\N{CJK UNIFIED IDEOGRAPH-79CD}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27169 (\\N{CJK UNIFIED IDEOGRAPH-6A21}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22411 (\\N{CJK UNIFIED IDEOGRAPH-578B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22312 (\\N{CJK UNIFIED IDEOGRAPH-5728}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 21644 (\\N{CJK UNIFIED IDEOGRAPH-548C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30340 (\\N{CJK UNIFIED IDEOGRAPH-7684}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20934 (\\N{CJK UNIFIED IDEOGRAPH-51C6}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 30830 (\\N{CJK UNIFIED IDEOGRAPH-786E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 29575 (\\N{CJK UNIFIED IDEOGRAPH-7387}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 23545 (\\N{CJK UNIFIED IDEOGRAPH-5BF9}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 27604 (\\N{CJK UNIFIED IDEOGRAPH-6BD4}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 24615 (\\N{CJK UNIFIED IDEOGRAPH-6027}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 22238 (\\N{CJK UNIFIED IDEOGRAPH-56DE}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 24402 (\\N{CJK UNIFIED IDEOGRAPH-5F52}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36923 (\\N{CJK UNIFIED IDEOGRAPH-903B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 36753 (\\N{CJK UNIFIED IDEOGRAPH-8F91}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 20915 (\\N{CJK UNIFIED IDEOGRAPH-51B3}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 31574 (\\N{CJK UNIFIED IDEOGRAPH-7B56}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "D:\\machineLearning\\venv\\Lib\\site-packages\\IPython\\core\\pylabtools.py:170: UserWarning: Glyph 26641 (\\N{CJK UNIFIED IDEOGRAPH-6811}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA90AAAJOCAYAAACqS2TfAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAQglJREFUeJzt3QmcVWX9P/CHRUA0cUFBEEPT3BNFRVNbFMM01zS0BUTTcklNW8RM3BK1RDQXkkStNChTf/7TLMXITIwE11JLTXEDJBMUFRT4v77P73XnNwMDzMA8zHDn/X697ou5555z58zMw7nn86xtFi5cuDABAAAATa5t078lAAAAEIRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6Aag6t1www2pTZs2+fHAAw8s9vrChQtTr1698uuf+9zn6rxWOe7SSy9d4vs+/PDDNdvOOeecvG3mzJl19v1//+//pU9+8pNpgw02SJ07d06bbrpp+sIXvpDuvvvu/PqnPvWpmu+1tEe8f2PNnz8/XX/99fl7rLvuuqljx46pd+/eaciQIXXOfWk/T32PUaNG1fk+3/nOd/L2gQMH1nseL7zwQp3j27Ztm8/ns5/9bJo4cWKDf54f/OAH6cADD0zdunVb5u/klVdeyb/ntddeO6211lrpoIMOSs8//3yDvxcArKj2K/wOAFStv//972mHHXZIHTp0qPf1efPmpUceeWSZ+zz11FPpvffea5b9PvKRj9Rs69SpU7r55pvTHnvsUWffP/3pT+nll1/OYXRJfvjDH6bjjz8+B+bG+tGPfpS+/e1v59A9dOjQ/B7PPvtsuvfee9PYsWPTvvvum773ve+lr371qzXH/O1vf0tXXHFFOvPMM9NWW21Vs/1jH/tYDrUR4iO0LmrBggXp8MMPTzfeeGN+/u6776ZDDz00h/tPfOIT+f0i6EYA/tWvfpX3mzp1atpoo42W+jNcc801ac0116yzrV+/fnUqLn75y1/mMB/n9tZbb6UPfehD9b7XkUcemfbbb79cGfDPf/4zXX311enTn/50/pm32267Zf4+zzrrrNS9e/f89//973+/xP3efvvt/L6zZs3KP/dqq62WLrvssvx3ePTRR9N6662X94v3in3r88EHH+TzO/roo1vdfgA0DaEbgCWKILXLLrvU2zocdt111wbv01z71RZB79e//nUOs+3b/99HYATxvn37LtY6XdGnT58c0qJl97TTTkuNESHm/PPPT/vss0/6wx/+sNjrM2bMyP/G67VFBUGcZ2yPFuraIqzecccdqX///ou9X4TrX/ziFzXPI+zHtgibp556ap19hw0blrc3xGGHHZa6du26xNcnTJiQKy7uu+++NGDAgHTrrbemwYMH17vvjjvumL785S/XPN9zzz1za3cE+wh8y/Lvf/87h/v4e62//vpL3C/e61//+leaNGlS2nnnnfO2+D7bbrtt7rlw4YUX1vyN3nzzzTplouKMM87IFRmtcT8Amobu5QC0GtHC+p///Cfdc889dVrEb7nllvTFL35xicftvvvuaa+99kqXXHJJbjlujAiGs2fPzu9Rn+huXkqE4J/85Cc5uC8auEO7du3St771rWW2cjfETTfdlLbeeuvcshyVAfG8oSJ0h+eee65B+0fgboj4u0bYrgTusOWWW6a99947t/IDwMogdAPQakRY22233XI36Irf/e53ufvxEUccsdRjY9zw9OnTc2tsY0SoXn311XOX6zfeeCOtTPGzRavmV77ylRV+rzj3qECoPP773//WvDZ37tz0m9/8JldqhPg3WrynTZvWoPeOru5hnXXWSU0lWmsff/zxtNNOOy32WvSQiIAfXeABoDShG4BWJVq0b7/99poW62iRjTG+PXr0WGZrbLTixtjuxrR2x7jr6OI9efLktPHGG+cu7tGtecqUKSv8syxLjGkPDRknvSxbbLFF7spdecR46orf/va3ubtypeLi4IMPzuOnY7x6fd55550c3KMSI4YHxIRulS7sTSUqCaIyYMMNN1zstcq2V199tcm+HwAsidANQKsSM1lHaI6gGC2d8e/SupYv2todrbeLztq9LOeee24eN16Z+CsmTYsx5DG2uRKMS4hu7WFJE5o1RrRkR7f8yqN29/H4OlqUN9tss5rvt//++y+xi3mMJY/gHhN6RWVG/A5ijHVThu5KxUh9k+PFePna+wBASSZSA6BVibAXY44jBEeLa0xK1tCwF7N/R2t3jO3++te/3qjvG12u4xFB+K9//WtenivO4YADDkhPPvlkTRBsSrFEVmiKbtTxs9c3kVq0cN91113ppJNOyjOyV8QY9gjqMTv5Rz/60TrHHHfccXmG9ZiBPrqhx4Rx8XeobdGu6V26dMnd9Buqsm+0di8qvm/tfQCgJKEbgFYnWraPPfbYHOxiNutYw7mhopU2ZhOPCcoac1ztIBwTm8UjumDHkl0RwqOLe1OLScPCE088kWdgLyFmg49gGy3V9a1lHq3d0dJf2+abb14z83qsix4TusWs2VGhURmDvWi38Fhn/KijjmrweVXWI3/ttdcWe62ybVlDCgCgKeheDkCrc8ghh+Sx1g899FCDu5ZXRDiO0H3xxRevcPfkSsCsLxg2hahQiEBbewmxphahOpbgivC96KPSo2BZort9dEmP9bcrandlj0csQ9YY8feNsewPP/zwYq9FJcemm27aJN3uAWBZtHQD0OqsueaaeRbymDU7unc3VoztjuB97bXXLnPf6ML+2GOP5VnT65tdvDJJWQm9evXKLfoxBv3HP/5x+sY3vrHYDN+xTvfAgQOXa9mwl156Kd1///25Jbu+LvqxHNuXvvSlHHL79eu3xPeJHgNf+9rXcrf9WA89WuXrW4O8seKcogU9gnelguOZZ57JXdpjqTQAWBmEbgBapcGDBy/3sdHaHY8//elPDQrdH//4x9Ouu+6a9t133xyEYxx0zKD+5z//Oc/0XXsm8KYWXb5jeayTTz453Xrrrbk7dyzNNXXq1Nwa/fTTTy9zubQliVbshQsXpgMPPLDe12Om9vbt2+fW8KWF7nDKKaekkSNHposuumiJs55X/PznP08vvvhi/t2GCP4XXHBB/jqWR/vwhz+cvz7hhBPS6NGj86RuEbKjO/+IESNSt27d0umnn75cPzMANJbQDQDLIVq7YwzyskQrbgS/O++8M49LjnHk0eU7Wrdj+bEIwyV17tw5t6jHxG0xfvz888/PYTXGM++11145EPfs2XO53juOjWXQtt9++yX+7HvssUcaN25cDrtLE+cTXf0jUEclwUc+8pEl7nvdddfVqfD44x//mB8hvl8ldEf38QkTJqRvfvObOZRHy370UIjW/ZhQDwBWBqEbgKoXE3A1ZBKu6G6+qGjJrU+Et/peizAej4po6f3qV7+aH43tGr2k791YEfKPOeaY/Gjs72nRn6e2xx9/fJnfuxKGQ+/evZf6M0WlRDyWJYJ0Q0W3+WjRB4DmYiI1AAAAKERLNwBLFTN8L2lprLfffrvB+zTnftUoxoJHK/qiPvjgg/wajVPfGuSVNb2vvPLKVrsfACuuzcKm6rsGAAAA1KF7OQAAABQidAMAAEAhQjcAAAAU0uomUos1Ol999dW8dmebNm2a+3QAAABYBcX0aG+99Vbq0aNHatt2ye3ZrS50R+Du1atXc58GAAAAVeCll15KG2200RJfb3WhO1q4K7+YtdZaq7lPBwAAgFXQ7Nmzc4NuJWMuSasL3ZUu5RG4hW4AAABWxLKGLZtIDQAAAAoRugEAAKAQoRsAAAAKaXVjuhtq/vz56f3332/u06CBVltttdSuXbvmPg0AAIA6hO561lqbNm1aevPNN5v7VGiktddeO3Xv3t366wAAQIshdC+iErg32GCD1LlzZwFuFakoeeedd9KMGTPy8w033LC5TwkAACATuhfpUl4J3Outt15znw6NsPrqq+d/I3jH309XcwAAoCUwkVotlTHc0cLNqqfydzMWHwAAaCmE7nroUr5q8ncDAABaGqEbAAAAChG6AQAAoBATqTVQ7zPuXKnf74WL9m/U/kcddVS68cYb09e+9rU0atSoOq+deOKJ6eqrr06DBw9ON9xwQ82+w4cPT2eccUbNfrfffns65JBD8mzgYcKECenTn/50+u9//5uX4wqjR49OV155ZXruuedS+/bt0yabbJK+8IUvpKFDh6bevXunF198cYnnWPn+AAAArYWW7irSq1evNHbs2PTuu+/WbHvvvffSzTffnDbeeOM6+3bq1CldfPHFOVA31JgxY9Kpp56aTj755PToo4+mv/zlL+k73/lOevvtt/Prf/vb39Jrr72WH7/5zW/ytmeeeaZm2+WXX95kPysAAMCqQEt3Fdlxxx1zC/Stt96avvSlL+Vt8XUE7miRrq1///7p2Wefza3dl1xySYPe/4477sit2sccc0zNtm222abm6/XXX7/m63XXXTf/G8t3VVrJAQAAWhst3VXm6KOPTtdff32d1ukhQ4Ystl+sY33hhRemH//4x+nll19u0Ht37949PfTQQ0vtQg4AAMD/EbqrzJe//OX0wAMP5GAcj+gCHtvqE+O3+/Tpk4YNG9ag9479otU6xm5vscUWeWz4r371q7RgwYIm/ikAAACqg9BdZaKL9/77758nLIsW7/i6a9euS9w/xnXHpGpPPfXUMt97ww03TBMnTkxPPPFEOuWUU9IHH3yQJ0fbd999BW8AAIB6CN1V2sU8QneE6fh6aT7xiU+kAQMG5NnHG2rbbbdNJ5xwQvrFL36R7rnnnvz405/+1ARnDgAAUF1MpFaFouV53rx5qU2bNjlQL8tFF12Uu5lHl/HG2nrrrfO/c+bMWa5zBQAAqGZCdxWKSdIq3cXj62XZbrvt8mznV1xxxVL3O/7441OPHj3SXnvtlTbaaKO8DNgFF1yQu7TvtttuTXb+AAAA1UL38iq11lpr5UdDnXfeecsclx3LjMXs5Ycffnj66Ec/mj7/+c/n9b7Hjx+f1ltvvSY4awAAgOrSZuHChQtTKzJ79uzUpUuXNGvWrMVC6XvvvZf+/e9/5zWtI0yyavH3AwAAWkK2rE33cgAAoNXqfcadqVq8cNH+zX0K1EP3cgAAAChE6AYAAIBChG4AAAAoROgGAACAQkykBkCDmGgGAKDxtHQDAABAIUI3AAAAFCJ0AwAAQCFCNwAAABRiIrWGOqfLSv5+sxp9yLRp09IPfvCDdOedd6ZXXnklbbDBBqlPnz7p1FNPTXvvvXfq3bt3/joeIZ6/+OKLdd6jZ8+e6eWXX655PmDAgHTvvfemhx56KO2888519j3qqKPSjTfemL9u37592mijjdLhhx+ezjvvvNSpU6clnuf999+ffvjDH6bJkyen1157Ld12223p4IMPrrPPwoUL07Bhw9Lo0aPTm2++mXbfffd0zTXXpM0337zRvxcAAIDmoqW7Srzwwgupb9++6b777suB9oknnkh33313+vSnP51OPPHEJR4XATmCb+XxyCOP1Lw2derU9OCDD6aTTjopjRkzpt7j991333zc888/ny677LL0k5/8JIflpZkzZ07afvvt01VXXbXEfS655JJ0xRVXpFGjRqW//vWvaY011sgVAO+9916Dfh8AAAAtgZbuKnHCCSekNm3apEmTJuWAWrHNNtuko48+eonHfehDH0rdu3ev97Xrr78+fe5zn0vHH3982nXXXdOIESPS6quvXmefjh071hzfq1ev1L9//3TPPfekiy++eInf87Of/Wx+LEm0co8cOTKdddZZ6aCDDsrbfvazn6Vu3bql22+/PR1xxBFL+U1QH0s9AQBA89DSXQXeeOON3KodLdq1A3fF2muv3ej3jOAbofvLX/5y2nLLLdNmm22WbrnllqUe8+STT+aW8Q4dOqQV8e9//zt3lY8AX9GlS5fUr1+/NHHixBV6bwAAgJVJ6K4Czz77bA7JEY4b67vf/W5ac801ax7RpTvEOO533nknd+kOEb6vu+66xY7/7W9/m4+LMdzbbbddmjFjRvr2t7+9Qj9PBO4QLdu1xfPKawAAAKsCobsKROBeXhGQH3300ZrHoEGD8vYYwz1w4MA8QVo48sgj01/+8pf03HPP1Tk+xozHcTHuevDgwWnIkCHp85//fH7tz3/+c51Af9NNN63QzwkAALCqMaa7CsSM3jGe++mnn270sV27ds1dxxftrh4zir///vt5xvCK+fPn5zAeM6RXRHf2yvHxWkyQFi3ixxxzTNppp51yIK9YtOV6SSpjxKdPn5423HDDmu3xPGZjBwAAWFVo6a4C6667bu4GHrOBx8zgi4oltxojWqRj+a/HHnusTiv4pZdemm644YYcvuvTtm3bdOaZZ+YJ0N5999086VoE8sojJm1riE022SQH7/Hjx9dsmz17dm5N32233Rr1swAAADQnobtKROCOMLzLLruk3/zmN+lf//pXeuqpp/IY7cYG1WipPuyww9K2225b5xGt1zNnzsyTti1JrNPdrl27pS4H9vbbb9cE+crEafF1LFEWotU+1hK/4IIL0h133JGXP4tu7z169FhsPW8AAICWTOiuEptuummaMmVKHmN9+umn55C8zz775Nbi2l3El2Xy5Mm5hbsyLru2mEF87733rndCtYoYAx7resc62/W1uoeHH3447bDDDvkRTjvttPz12WefXbPPd77znfSNb3wjHXfccWnnnXfOQT3CfkzYBgAAsKpos3BFZuFaBUU35QiPs2bNSmuttVad1957773c6hrdm4W7VY+/35JZp5umoBwBUI18vlEiW9ampRsAAAAKEboBAACgEKEbAAAAChG6AQAAoBChGwAAAAoRuuuxYMGC5j4FloO/GwAA0NK0b+4TaEk6dOiQ2rZtm1599dW0/vrr5+dt2rRp7tNiGWLVu3nz5qXXX389//3i7wYAANASCN21RGCLNZ5fe+21HLxZtXTu3DltvPHG+e8IAADQEgjdi4hW0ghuH3zwQZo/f35znw4N1K5du9S+fXs9EwAAgBZF6K5HBLfVVlstPwAAAGB56YcLAAAAhQjdAAAAUIjQDQAAAIUI3QAAAFCI0A0AAACFCN0AAABQiNANAAAAhQjdAAAAUIjQDQAAAIUI3QAAAFCI0A0AAACFCN0AAABQiNANAAAAhbQv9cYAAFBK7zPuTNXihYv2b+5TAArS0g0AAACFCN0AAABQiNANAAAA1Rq6r7rqqtS7d+/UqVOn1K9fvzRp0qSl7j9y5Mi0xRZbpNVXXz316tUrffOb30zvvffeSjtfAAAAWCVC97hx49Jpp52Whg0blqZMmZK23377NGDAgDRjxox697/55pvTGWeckfd/6qmn0nXXXZff48wzz1zp5w4AAAAtOnSPGDEiHXvssWnIkCFp6623TqNGjUqdO3dOY8aMqXf/Bx98MO2+++7pi1/8Ym4d/8xnPpOOPPLIZbaOAwAAQKsK3fPmzUuTJ09O/fv3/7+Tads2P584cWK9x3z84x/Px1RC9vPPP5/uuuuutN9++6208wYAAIAWv073zJkz0/z581O3bt3qbI/nTz/9dL3HRAt3HLfHHnukhQsXpg8++CB9/etfX2r38rlz5+ZHxezZs5vwpwAAAIAWPJFaY0yYMCFdeOGF6eqrr85jwG+99dZ05513pvPPP3+JxwwfPjx16dKl5hGTrwEAAEBVt3R37do1tWvXLk2fPr3O9njevXv3eo/5/ve/n77yla+kr371q/n5dtttl+bMmZOOO+649L3vfS93T1/U0KFD82RttVu6BW8AAACquqW7Q4cOqW/fvmn8+PE12xYsWJCf77bbbvUe88477ywWrCO4h+huXp+OHTumtdZaq84DAAAAqrqlO0QL9ODBg9NOO+2Udtlll7wGd7Rcx2zmYdCgQalnz565i3g44IAD8oznO+ywQ17T+9lnn82t37G9Er4BAACgpWjW0D1w4MD0+uuvp7PPPjtNmzYt9enTJ9199901k6tNnTq1Tsv2WWedldq0aZP/feWVV9L666+fA/cPfvCDZvwpAAAAoAWG7nDSSSflx5ImTqutffv2adiwYfkBAAAALd0qNXs5AAAArEqEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAopH2pNwYAqE/vM+5M1eKFi/Zv7lMAoIXT0g0AAACFCN0AAABQiNANAAAA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Y98OAAAAqlajQ3fPnj3T448/nm666ab02GOPpdVXXz0NGTIkHXnkkfWu2Q0AAACt1XINwo51uI877rimPxsAAACoIss981nMVD516tQ0b968OtsPPPDApjgvAAAAaH2h+/nnn0+HHHJIeuKJJ1KbNm3SwoUL8/b4OsyfP7/pzxIAAABaw+zlp5xyStpkk03SjBkzUufOndPf//73dP/996eddtopTZgwocxZAgAAQGto6Z44cWK67777UteuXVPbtm3zY4899kjDhw9PJ598cnrkkUfKnCkAAABUe0t3dB//0Ic+lL+O4P3qq6/mr2MJsWeeeabpzxAAAABaS0v3tttum5cKiy7m/fr1S5dccknq0KFDuvbaa9Omm25a5iwBAACgNYTus846K82ZMyd/fd5556XPfe5zac8990zrrbdeGjduXIlzBAAAgNYRugcMGFDz9WabbZaefvrp9MYbb6R11lmnZgZzAAAAoJFjut9///3Uvn379OSTT9bZvu666wrcAAAAsCKhe7XVVksbb7yxtbgBAACgxOzl3/ve99KZZ56Zu5QDAAAATTim+8orr0zPPvts6tGjR14mbI011qjz+pQpUxr7lgAAAFCVGh26Dz744DJnAgAAAK09dA8bNqzMmQAAAEBrH9MNAAAAFGrpbtu27VKXBzOzOQAAACxn6L7tttsWW7v7kUceSTfeeGM699xzG/t2AAAAULUaHboPOuigxbYddthhaZtttknjxo1LxxxzTFOdGwAAAKzSmmxM96677prGjx/fVG8HAAAAq7wmCd3vvvtuuuKKK1LPnj2b4u0AAACgdXYvX2eddepMpLZw4cL01ltvpc6dO6df/OIXTX1+AAAA0HpC92WXXVYndMds5uuvv37q169fDuQAAADAcobuo446qrGHAAAAQKvU6DHd119/ffr1r3+92PbYFsuGAQAAAMsZuocPH566du262PYNNtggXXjhhY19OwAAAKhajQ7dU6dOTZtsssli2z/84Q/n1wAAAIDlDN3Rov34448vtv2xxx5L6623XmPfDgAAAKpWo0P3kUcemU4++eT0xz/+Mc2fPz8/7rvvvnTKKaekI444osxZAgAAQGuYvfz8889PL7zwQtp7771T+/b/e/iCBQvSoEGDjOkGAACAFQndHTp0SOPGjUsXXHBBevTRR9Pqq6+etttuuzymGwAAAFiB0F2x+eab5wcAAADQRGO6P//5z6eLL754se2XXHJJOvzwwxv7dgAAAFC1Gh2677///rTffvsttv2zn/1sfg0AAABYztD99ttv53Hdi1pttdXS7NmzG/t2AAAAULUaHbpj0rSYSG1RY8eOTVtvvXVTnRcAAAC0vonUvv/976dDDz00Pffcc2mvvfbK28aPH59uvvnmdMstt5Q4RwAAAGgdofuAAw5It99+e16TO0J2LBm2/fbbp/vuuy+tu+66Zc4SAAAAWsuSYfvvv39+hBjH/ctf/jJ961vfSpMnT07z589v6nMEAACA1jGmuyJmKh88eHDq0aNHuvTSS3NX84ceeqhpzw4AAABaS0v3tGnT0g033JCuu+663ML9hS98Ic2dOzd3NzeJGgAAACxnS3eM5d5iiy3S448/nkaOHJleffXV9OMf/7ihhwMAAECr0+CW7t/97nfp5JNPTscff3zafPPNy54VAAAAtKaW7gceeCC99dZbqW/fvqlfv37pyiuvTDNnzix7dgAAANAaQveuu+6aRo8enV577bX0ta99LY0dOzZPorZgwYJ0zz335EAOAAAArMDs5WussUY6+uijc8v3E088kU4//fR00UUXpQ022CAdeOCBjX07AAAAqFrLvWRYiInVLrnkkvTyyy/ntboBAACAJgrdFe3atUsHH3xwuuOOO5ri7QAAAKAqNEnoXlFXXXVV6t27d+rUqVOepG3SpEkNOi7Glbdp0yYHfgAAAGhpmj10jxs3Lp122mlp2LBhacqUKWn77bdPAwYMSDNmzFjqcS+88EL61re+lfbcc8+Vdq4AAACwSoXuESNGpGOPPTYNGTIkbb311mnUqFGpc+fOacyYMUs8Zv78+elLX/pSOvfcc9Omm266Us8XAAAAVonQPW/evDR58uTUv3///zuhtm3z84kTJy7xuPPOOy/Pln7MMcespDMFAACAxmufmtHMmTNzq3W3bt3qbI/nTz/9dL3HxFJl1113XXr00Ucb9D3mzp2bHxWzZ89ewbMGAACAVaR7eWO89dZb6Stf+UoaPXp06tq1a4OOGT58eOrSpUvNo1evXsXPEwAAAJq9pTuCcyw3Nn369Drb43n37t0X2/+5557LE6gdcMABNdsWLFiQ/23fvn165pln0kc+8pE6xwwdOjRP1Fa7pVvwBgAAoOpDd4cOHVLfvn3T+PHja5b9ihAdz0866aTF9t9yyy3TE088UWfbWWedlVvAL7/88nrDdMeOHfMDAAAAWlXoDtEKPXjw4LTTTjulXXbZJY0cOTLNmTMnz2YeBg0alHr27Jm7icc63ttuu22d49dee+3876LbAQAAILX20D1w4MD0+uuvp7PPPjtNmzYt9enTJ9199901k6tNnTo1z2gOAAAAq5pmD90hupLX1508TJgwYanH3nDDDYXOCgAAAFaMJmQAAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQtqXemMAaLHO6ZKqyjmzmvsMAIAl0NINAAAAhQjdAAAAUIjQDQAAAIUI3QAAAFCI0A0AAACFCN0AAABQiNANAAAAhQjdAAAAUIjQDQAAAIUI3QAAAFBI+1JvDAAAwEp0TpdUNc6ZlaqFlm4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAopH2pNwYo4pwuqWqcM6u5zwAAgMK0dAMAAEAhQjcAAAAUInQDAABAIUI3AAAAFCJ0AwAAQCFCNwAAABQidAMAAEAhQjcAAAAUInQDAABAIUI3AAAAFCJ0AwAAQCFCNwAAABQidAMAAEAhQjcAAAAUInQDAABAIUI3AAAAFCJ0AwAAQCFCNwAAABQidAMAAEAhQjcAAAAU0r7UGwMAAA1wTpdUVc6Z1dxnAC2K0A0AsLyqKSwJSgBF6F4OAAAAhQjdAAAAUIjQDQAAAIUI3QAAAFCI0A0AAACFCN0AAABQiNANAAAAhVinuwXrfcadqVq8cNH+zX0KAAAAK52WbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAqObQfdVVV6XevXunTp06pX79+qVJkyYtcd/Ro0enPffcM62zzjr50b9//6XuDwAAAK02dI8bNy6ddtppadiwYWnKlClp++23TwMGDEgzZsyod/8JEyakI488Mv3xj39MEydOTL169Uqf+cxn0iuvvLLSzx0AAABadOgeMWJEOvbYY9OQIUPS1ltvnUaNGpU6d+6cxowZU+/+N910UzrhhBNSnz590pZbbpl++tOfpgULFqTx48ev9HMHAACAFhu6582blyZPnpy7iNecUNu2+Xm0YjfEO++8k95///207rrr1vv63Llz0+zZs+s8AAAAoOpD98yZM9P8+fNTt27d6myP59OmTWvQe3z3u99NPXr0qBPcaxs+fHjq0qVLzSO6owMAAECr6F6+Ii666KI0duzYdNttt+VJ2OozdOjQNGvWrJrHSy+9tNLPEwAAgNapfXN+865du6Z27dql6dOn19kez7t3777UY3/0ox/l0H3vvfemj33sY0vcr2PHjvkBAAAAraqlu0OHDqlv3751JkGrTIq22267LfG4Sy65JJ1//vnp7rvvTjvttNNKOlsAAABYhVq6QywXNnjw4Byed9lllzRy5Mg0Z86cPJt5GDRoUOrZs2cemx0uvvjidPbZZ6ebb745r+1dGfu95ppr5gcAAAC0FM0eugcOHJhef/31HKQjQMdSYNGCXZlcberUqXlG84prrrkmz3p+2GGH1XmfWOf7nHPOWennDwAAAC02dIeTTjopP+ozYcKEOs9feOGFlXRWAAAA0IpnLwcAAICWTOgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAopH2pN4Y6zumSqso5s5r7DAAAgFWAlm4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAAAoROgGAACAQoRuAAAAKEToBgAAgEKEbgAAAChE6AYAAIBChG4AAACo5tB91VVXpd69e6dOnTqlfv36pUmTJi11/1//+tdpyy23zPtvt9126a677lpp5woAAACrTOgeN25cOu2009KwYcPSlClT0vbbb58GDBiQZsyYUe/+Dz74YDryyCPTMccckx555JF08MEH58eTTz650s8dAAAAWnToHjFiRDr22GPTkCFD0tZbb51GjRqVOnfunMaMGVPv/pdffnnad99907e//e201VZbpfPPPz/tuOOO6corr1zp5w4AAABL0z41o3nz5qXJkyenoUOH1mxr27Zt6t+/f5o4cWK9x8T2aBmvLVrGb7/99nr3nzt3bn5UzJo1K/87e/bs1NItmPtOqhaz2yxMVWUVKD+1KUstlHLUbKqqHAVlqdlUVVlSjppNVZWjoCw1m6oqS7NbfjmqZMqFCxe23NA9c+bMNH/+/NStW7c62+P5008/Xe8x06ZNq3f/2F6f4cOHp3PPPXex7b169Vqhc6dxuqQqc1HV/USrjKr6zStHzabqfvPKUrOpqt+8ctRsqu43ryw1m6r6zV+06vw0b731VurSpUvLDN0rQ7Si124ZX7BgQXrjjTfSeuutl9q0adOs59ZaRA1QVHK89NJLaa211mru02EVpizRFJQjmoqyRFNQjmgqytLKFy3cEbh79Oix1P2aNXR37do1tWvXLk2fPr3O9njevXv3eo+J7Y3Zv2PHjvlR29prr73C507jxX9+FwCagrJEU1COaCrKEk1BOaKpKEsr19JauFvERGodOnRIffv2TePHj6/TEh3Pd9ttt3qPie219w/33HPPEvcHAACA5tLs3cuj6/fgwYPTTjvtlHbZZZc0cuTINGfOnDybeRg0aFDq2bNnHpsdTjnllPTJT34yXXrppWn//fdPY8eOTQ8//HC69tprm/knAQAAgBYWugcOHJhef/31dPbZZ+fJ0Pr06ZPuvvvumsnSpk6dmmc0r/j4xz+ebr755nTWWWelM888M22++eZ55vJtt922GX8Klia698c67It284fGUpZoCsoRTUVZoikoRzQVZanlarNwWfObAwAAAMulWcd0AwAAQDUTugEAAKAQoRsAAAAKEboBAACgEKGbFifm9nv11VfTb3/72/SPf/yjZhs0hnLEipo/f3765S9/mQYMGJD+9re/5W3KEI3x3nvvpX/9619pxowZzX0qVIH4THvwwQfT3Llzm/tUgFVtyTAIb775Zl5v/dZbb02TJk1KW2yxRWrXrl1aa6210pVXXplvdNu0adPcp0kLpxyxIhYsWJCXqKz8++KLL6YLL7ww/f3vf8/LVe68887KEMusqHnhhRfSPffck5czfeONN9J6662XvvSlL6Uvf/nLzX16rGIq15sPPvggtW/fPp177rnpvvvuy+Wrd+/ezX16rGJmzpyZ7rjjjlxx89GPfjQddNBB+T6JlUNLN81a+x8XgF//+tf5P/8TTzyRvvKVr+TQdNNNN6XRo0fnbaH2Wu1QoRzRFDe11157bfrwhz+cfvCDH9RsC2+//XaaNWtWOvTQQ9Mf/vCHvE3gprYoK//973/z12PGjEkf+9jH0vnnn5/WWGON/Dwq/04//fS8T5QnaGgPm4033jhdcMEFda47AwcOTHPmzEmvvPJKM58lq5KHHnoobbbZZqlbt27piiuuSO+88066/vrr02c+85n06KOP5n304ipPSzfNWvsfNf/bbrtt/iD55je/WbN/1Op27Ngxt1I+99xz6SMf+Uiznj8tg3JEU4gbjmgx+uc//5luu+229Pjjj6eXXnop/epXv0p77LFH+vSnP533i+D07rvvpt133z1dfvnluXKna9euzX36NLO33norTZ48Of3P//xPeuCBB3I5evbZZ/P1KHpGROtRbauttloucy+//HLacsstm+28aZki7MQwqN///ve5R9b777+fXnvttVxefvrTn6ZO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"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "execution_count": 10
  },
  {
   "cell_type": "markdown",
   "id": "a0108d74",
   "metadata": {},
   "source": [
    "## 分析与结论\n",
    "\n",
    "- 从准确率对比可以看出，MLP和KNN在MNIST上表现最好，线性回归效果最差。\n",
    "- 在CIFAR-10上，所有模型准确率均有下降，MLP和逻辑回归相对较优。\n",
    "- 复杂数据集（如CIFAR-10）对传统机器学习模型挑战较大，深度学习模型更具优势。\n",
    "\n",
    "请结合实验结果进一步分析各模型优缺点和适用场景。"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  },
  "kernelspec": {
   "name": "python3",
   "language": "python",
   "display_name": "Python 3 (ipykernel)"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
